【PHP/演習問題】インターフェース[1]
問題
次の実行結果になるプログラムを作成してください。
なお、下記条件を満たすものとします。
- 下記表のクラス・インターフェースを作成する
- 実行結果になるように各クラスのインスタンスを使う
種類 | 名前 | 英記 | 継承元 | インターフェース | フィールド | メソッド |
---|---|---|---|---|---|---|
インターフェース | チケット情報 | TicketInfo | – | – | – | ・info() |
抽象クラス | チケットクラス
|
Ticket |
– | TicketInfo | ・$price (料金) |
– |
具象クラス | ライブチケット | LiveTicket |
Ticket |
– | ・$place (場所) |
・info()
→ 場所と料金を出力 |
具象クラス | ライブ配信チケット | LiveStreamingTicket |
Ticket |
– | ・$url (URL) |
・info()
→ URLと料金を出力 |
===== ライブチケット =====
料金 : 8000円
場所 : ライブハウス
===== ライブ配信 =====
料金 : 3000円
URL : https://it-hack.net/live-streaming
解答例
<?php
interface TicketInfo {
public function info();
}
abstract class Ticket implements TicketInfo {
public $price;
}
class LiveTicket extends Ticket {
public $place;
public function info() {
echo '料金 : '.$this->price."円\n";
echo '場所 : '.$this->place."\n";
}
}
class LiveStreamingTicket extends Ticket {
public $url;
public function info() {
echo '料金 : '.$this->price."円\n";
echo 'URL : '.$this->url."\n";
}
}
echo "===== ライブチケット =====\n";
$live_ticket = new LiveTicket();
$live_ticket->price = 8000;
$live_ticket->place = 'ライブハウス';
$live_ticket->info();
echo "===== ライブ配信 =====\n";
$live_streaming_ticket = new LiveStreamingTicket();
$live_streaming_ticket->price = 3000;
$live_streaming_ticket->url = 'https://it-hack.net/live-streaming';
$live_streaming_ticket->info();
?>